|
sgdk
|
Go to the source code of this file.
Classes | |
| struct | SpriteDef |
Defines | |
| #define | MAX_SPRITE 80 |
| #define | SPRITE_SIZE(w, h) ((((w) - 1) << 2) | ((h) - 1)) |
Functions | |
| void | VDP_resetSprites () |
| Reset all sprites. | |
| void | VDP_setSprite (u16 index, s16 x, s16 y, u8 size, u16 tile_attr, u8 link) |
| Set a sprite (use sprite list cache). | |
| void | VDP_setSpriteP (u16 index, const SpriteDef *sprite) |
| Set a sprite (use sprite list cache). | |
| void | VDP_setSpriteDirect (u16 index, s16 x, s16 y, u8 size, u16 tile_attr, u8 link) |
| Set a sprite (direct send to VDP). | |
| void | VDP_setSpriteDirectP (u16 index, const SpriteDef *sprite) |
| Set a sprite (direct send to VDP). | |
| void | VDP_setSpritePosition (u16 index, s16 x, s16 y) |
| Set sprite position (use sprite list cache). | |
| void | VDP_setSprites (u16 index, const SpriteDef *sprites, u16 num) |
| Set severals sprites (use sprite list cache). | |
| void | VDP_setSpritesDirect (u16 index, const SpriteDef *sprites, u16 num) |
| Set severals sprites (direct send to VDP). | |
| void | VDP_updateSprites () |
| Send the cached sprite list to the VDP. | |
Variables | |
| SpriteDef | vdpSpriteCache [MAX_SPRITE] |
| VDP sprite definition cache. | |
VDP Sprite support.
This unit provides methods to manipulate the VDP Sprites.
The Sega Genesis VDP can handle up to 80 simultanous sprites of 4x4 tiles (32x32 pixels).
| #define MAX_SPRITE 80 |
Maximum number of sprite
| #define SPRITE_SIZE | ( | w, | |
| h | |||
| ) | ((((w) - 1) << 2) | ((h) - 1)) |
Helper to define sprite size in sprite definition structure.
| w | sprite width (in tile). |
| h | sprite height (in tile). |
| void VDP_resetSprites | ( | ) |
Reset all sprites.
Clear the sprite list.
| void VDP_setSprite | ( | u16 | index, |
| s16 | x, | ||
| s16 | y, | ||
| u8 | size, | ||
| u16 | tile_attr, | ||
| u8 | link | ||
| ) |
Set a sprite (use sprite list cache).
| index | Index of the sprite to set (should be < MAX_SPRITE). |
| x | Sprite position X. |
| y | Sprite position Y. |
| size | Sprite size (see SPRITE_SIZE() macro). |
| tile_attr | Sprite tile attributes (see TILE_ATTR_FULL() macro). |
| link | Sprite link (index of next sprite, 0 for end). |
| void VDP_setSpriteDirect | ( | u16 | index, |
| s16 | x, | ||
| s16 | y, | ||
| u8 | size, | ||
| u16 | tile_attr, | ||
| u8 | link | ||
| ) |
Set a sprite (direct send to VDP).
| index | Index of the sprite to set (should be < MAX_SPRITE). |
| x | Sprite position X. |
| y | Sprite position Y. |
| size | Sprite size (see SPRITE_SIZE() macro). |
| tile_attr | Sprite tile attributes (see TILE_ATTR_FULL() macro). |
| link | Sprite link (index of next sprite, 0 for end). |
See VDP_setSprite().
| void VDP_setSpriteDirectP | ( | u16 | index, |
| const SpriteDef * | sprite | ||
| ) |
Set a sprite (direct send to VDP).
| index | Index of the sprite to set (should be < MAX_SPRITE). |
| sprite | Sprite definition. |
See VDP_setSpriteP().
| void VDP_setSpriteP | ( | u16 | index, |
| const SpriteDef * | sprite | ||
| ) |
Set a sprite (use sprite list cache).
| index | Index of the sprite to set (should be < MAX_SPRITE). |
| sprite | Sprite definition. |
See VDP_setSprite().
| void VDP_setSpritePosition | ( | u16 | index, |
| s16 | x, | ||
| s16 | y | ||
| ) |
Set sprite position (use sprite list cache).
| index | Index of the sprite to modify position (should be < MAX_SPRITE). |
| x | Sprite position X. |
| y | Sprite position Y. |
See VDP_setSprite().
| void VDP_setSprites | ( | u16 | index, |
| const SpriteDef * | sprites, | ||
| u16 | num | ||
| ) |
Set severals sprites (use sprite list cache).
| index | Index of first sprite to set (should be < MAX_SPRITE). |
| sprites | Sprite definitions. |
| num | Number of sprite to set. |
| void VDP_setSpritesDirect | ( | u16 | index, |
| const SpriteDef * | sprites, | ||
| u16 | num | ||
| ) |
Set severals sprites (direct send to VDP).
| index | Index of first sprite to set. |
| sprites | Sprite definitions. |
| num | Number of sprite to set. |
See VDP_setSprites().
| void VDP_updateSprites | ( | ) |
Send the cached sprite list to the VDP.
You should call this method when you completed your sprite update task.